<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>StrangeIoC: strange.extensions.injector.api.IInjector Interface Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">StrangeIoC
   &#160;<span id="projectnumber">0.6.0</span>
   </div>
   <div id="projectbrief">The IoC/Binding Framework for Unity3D and C#</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Events</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespacestrange.html">strange</a></li><li class="navelem"><a class="el" href="namespacestrange_1_1extensions.html">extensions</a></li><li class="navelem"><a class="el" href="namespacestrange_1_1extensions_1_1injector.html">injector</a></li><li class="navelem"><a class="el" href="namespacestrange_1_1extensions_1_1injector_1_1api.html">api</a></li><li class="navelem"><a class="el" href="interfacestrange_1_1extensions_1_1injector_1_1api_1_1_i_injector.html">IInjector</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#properties">Properties</a> &#124;
<a href="interfacestrange_1_1extensions_1_1injector_1_1api_1_1_i_injector-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">strange.extensions.injector.api.IInjector Interface Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Interface for the Injector, which dependencies into provided instances.  
 <a href="interfacestrange_1_1extensions_1_1injector_1_1api_1_1_i_injector.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for strange.extensions.injector.api.IInjector:</div>
<div class="dyncontent">
 <div class="center">
  <img src="interfacestrange_1_1extensions_1_1injector_1_1api_1_1_i_injector.png" usemap="#strange.extensions.injector.api.IInjector_map" alt=""/>
  <map id="strange.extensions.injector.api.IInjector_map" name="strange.extensions.injector.api.IInjector_map">
<area href="classstrange_1_1extensions_1_1injector_1_1impl_1_1_injector.html" title="Supplies injection for all mapped dependencies. " alt="strange.extensions.injector.impl.Injector" shape="rect" coords="0,56,235,80"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ab6c185a183b27708e38c4954195fe591"><td class="memItemLeft" align="right" valign="top">object&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacestrange_1_1extensions_1_1injector_1_1api_1_1_i_injector.html#ab6c185a183b27708e38c4954195fe591">Instantiate</a> (<a class="el" href="interfacestrange_1_1extensions_1_1injector_1_1api_1_1_i_injection_binding.html">IInjectionBinding</a> binding)</td></tr>
<tr class="memdesc:ab6c185a183b27708e38c4954195fe591"><td class="mdescLeft">&#160;</td><td class="mdescRight">Request an instantiation based on the given binding.  <a href="#ab6c185a183b27708e38c4954195fe591">More...</a><br/></td></tr>
<tr class="separator:ab6c185a183b27708e38c4954195fe591"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c4b0fc21caebeafe42ad797001181e8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3c4b0fc21caebeafe42ad797001181e8"></a>
object&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacestrange_1_1extensions_1_1injector_1_1api_1_1_i_injector.html#a3c4b0fc21caebeafe42ad797001181e8">Inject</a> (object target)</td></tr>
<tr class="memdesc:a3c4b0fc21caebeafe42ad797001181e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Request that the provided target be injected. <br/></td></tr>
<tr class="separator:a3c4b0fc21caebeafe42ad797001181e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82ddabe54623ed3caed1ad607b679ad1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a82ddabe54623ed3caed1ad607b679ad1"></a>
object&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacestrange_1_1extensions_1_1injector_1_1api_1_1_i_injector.html#a82ddabe54623ed3caed1ad607b679ad1">Inject</a> (object target, bool attemptConstructorInjection)</td></tr>
<tr class="memdesc:a82ddabe54623ed3caed1ad607b679ad1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Request that the provided target be injected. <br/></td></tr>
<tr class="separator:a82ddabe54623ed3caed1ad607b679ad1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97ed5ca85ac9043a53ae49122a5dc3ca"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacestrange_1_1extensions_1_1injector_1_1api_1_1_i_injector.html#a97ed5ca85ac9043a53ae49122a5dc3ca">Uninject</a> (object target)</td></tr>
<tr class="memdesc:a97ed5ca85ac9043a53ae49122a5dc3ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the injections from the provided instance.  <a href="#a97ed5ca85ac9043a53ae49122a5dc3ca">More...</a><br/></td></tr>
<tr class="separator:a97ed5ca85ac9043a53ae49122a5dc3ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="properties"></a>
Properties</h2></td></tr>
<tr class="memitem:abc1ae4ebd51649ad7c44873d87e76445"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abc1ae4ebd51649ad7c44873d87e76445"></a>
<a class="el" href="interfacestrange_1_1extensions_1_1injector_1_1api_1_1_i_injector_factory.html">IInjectorFactory</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacestrange_1_1extensions_1_1injector_1_1api_1_1_i_injector.html#abc1ae4ebd51649ad7c44873d87e76445">factory</a><code> [get, set]</code></td></tr>
<tr class="memdesc:abc1ae4ebd51649ad7c44873d87e76445"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get/set an InjectorFactory. <br/></td></tr>
<tr class="separator:abc1ae4ebd51649ad7c44873d87e76445"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c47c5e51f6b75cc8c3e0897d3aae42a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5c47c5e51f6b75cc8c3e0897d3aae42a"></a>
<a class="el" href="interfacestrange_1_1extensions_1_1injector_1_1api_1_1_i_injection_binder.html">IInjectionBinder</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacestrange_1_1extensions_1_1injector_1_1api_1_1_i_injector.html#a5c47c5e51f6b75cc8c3e0897d3aae42a">binder</a><code> [get, set]</code></td></tr>
<tr class="memdesc:a5c47c5e51f6b75cc8c3e0897d3aae42a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get/set an InjectionBinder. <br/></td></tr>
<tr class="separator:a5c47c5e51f6b75cc8c3e0897d3aae42a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ee8852222538152189f234136a92adf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6ee8852222538152189f234136a92adf"></a>
<a class="el" href="interfacestrange_1_1extensions_1_1reflector_1_1api_1_1_i_reflection_binder.html">IReflectionBinder</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacestrange_1_1extensions_1_1injector_1_1api_1_1_i_injector.html#a6ee8852222538152189f234136a92adf">reflector</a><code> [get, set]</code></td></tr>
<tr class="memdesc:a6ee8852222538152189f234136a92adf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get/set a ReflectionBinder. <br/></td></tr>
<tr class="separator:a6ee8852222538152189f234136a92adf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Interface for the Injector, which dependencies into provided instances. </p>
<p>The Injector requests a ReflectedClass from the ReflectionBinder and uses that information to inject an instance. Note that the Injector itself does not instantiate the class. That is the job of the InjectorFactory. That said, Factory and Reflector are 'hidden' from the average user, since their jobs are pretty deep in the structure. If you wish, you can override either or both.</p>
<p>Classes utilizing the injector must be marked with the following metatags: </p>
<ul>
<li>
[<a class="el" href="class_inject.html" title="The [Inject] attribute marks a setter Injection point. ">Inject</a>] - Use this metatag on any setter you wish to have supplied by injection. </li>
<li>
[<a class="el" href="class_construct.html" title="The [Construct] attribute marks a preferred Constructor. ">Construct</a>] - Use this metatag on the specific Constructor you wish to inject into when using Constructor injection. If you omit this tag, the Constructor with the shortest list of dependencies will be selected automatically. </li>
<li>
[<a class="el" href="class_post_construct.html" title="The [PostConstruct] attribute marks one or more methods as PostConstructors. ">PostConstruct</a>] - Use this metatag on any method(s) you wish to fire directly after dependencies are supplied </li>
</ul>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="interfacestrange_1_1extensions_1_1reflector_1_1api_1_1_i_reflection_binder.html" title="Generates ReflectedClass instances. ">strange.extensions.reflector.api.IReflectionBinder</a> </dd>
<dd>
<a class="el" href="interfacestrange_1_1extensions_1_1injector_1_1api_1_1_i_injection_binder.html" title="A Binder that implements Dependency Injection in StrangeIoC. ">strange.extensions.injector.api.IInjectionBinder</a> </dd>
<dd>
<a class="el" href="interfacestrange_1_1extensions_1_1injector_1_1api_1_1_i_injector_factory.html" title="Interface for the Factory that instantiates all instances. ">strange.extensions.injector.api.IInjectorFactory</a> </dd></dl>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="ab6c185a183b27708e38c4954195fe591"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">object strange.extensions.injector.api.IInjector.Instantiate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="interfacestrange_1_1extensions_1_1injector_1_1api_1_1_i_injection_binding.html">IInjectionBinding</a>&#160;</td>
          <td class="paramname"><em>binding</em>)</td><td></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Request an instantiation based on the given binding. </p>
<p>This request is made to the Injector, but it's really the InjectorFactory that does the instantiation. </p>

<p>Implemented in <a class="el" href="classstrange_1_1extensions_1_1injector_1_1impl_1_1_injector.html#af2e993fb61630c887d378d36b19bac6f">strange.extensions.injector.impl.Injector</a>.</p>

</div>
</div>
<a class="anchor" id="a97ed5ca85ac9043a53ae49122a5dc3ca"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void strange.extensions.injector.api.IInjector.Uninject </td>
          <td>(</td>
          <td class="paramtype">object&#160;</td>
          <td class="paramname"><em>target</em>)</td><td></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Clear the injections from the provided instance. </p>
<p>Note that Uninject can only clean public properties...therefore only setters will be uninjected...not injections provided via constructor injection </p>

<p>Implemented in <a class="el" href="classstrange_1_1extensions_1_1injector_1_1impl_1_1_injector.html#aadbd3054a566efbcef0fb1cdc3dc3e23">strange.extensions.injector.impl.Injector</a>.</p>

</div>
</div>
<hr/>The documentation for this interface was generated from the following file:<ul>
<li>StrangeIoC/scripts/strange/extensions/injector/api/IInjector.cs</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jan 28 2014 13:07:05 for StrangeIoC by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.4
</small></address>
</body>
</html>
